package com.softeem.sanguo;

public class SkillBall extends Ball {
    /**
     * 构造器：在创建对象时执行初始化操作
     *
     * @param panel
     * @param x
     * @param y
     * @param dir   球的飞行方向 0-左 1-上 2-右 3-下  4-左上 5-右上 6-右下 7-左下
     */
    public SkillBall(GamePanel panel, int x, int y, char dir) {
        super(panel, x, y, dir);
    }

    @Override
    public void changeLocation() {
        System.out.println(getX()+","+getY());
        //根据方向标记移动篮球
        switch (getDir()) {
            case '0':
                //左边飞行
                this.setX(this.getX() - Config.BALL_SPEED);
                break;
            case '1':
                //上方飞行
                this.setY(this.getY() - Config.BALL_SPEED);
                break;
            case '2':
                //右方飞行
                this.setX(this.getX() + Config.BALL_SPEED);
                break;
            case '3':
                //下方飞行
                this.setY(this.getY() + Config.BALL_SPEED);
                break;
            case '4':
                //左上
                this.setX(this.getX() - Config.BALL_SPEED);
                this.setY(this.getY() - Config.BALL_SPEED);
                break;
            case '5':
                //右上
                this.setX(this.getX() + Config.BALL_SPEED);
                this.setY(this.getY() - Config.BALL_SPEED);
                break;
            case '6':
                //右下
                this.setX(this.getX() + Config.BALL_SPEED);
                this.setY(this.getY() + Config.BALL_SPEED);
                break;
            case '7':
                //左下
                this.setY(this.getY() + Config.BALL_SPEED);
                this.setX(this.getX() - Config.BALL_SPEED);
                break;
        }
        //判断是否越界
        //判断球是否飞出屏幕之外(水平方向)
        if(this.getX() < -this.getW() || this.getX() > Config.SC_WIDTH){
            //标记球销毁
            this.setDeath(true);
        }
        //垂直方向
        if(this.getY() < 0 || this.getY() > Config.SC_HEIGHT){
            this.setDeath(true);
        }
    }
}
